### 3.3 Compiling C++ Programs

C++ source files conventionally use one of the suffixes ``.C`', ``.cc`', ``.cpp`', ``.CPP`', ``.c++`', ``.cp`', or ``.cxx`'; C++ header files often use ``.hh`', ``.hpp`', ``.H`', or (for shared template code) ``.tcc`'; and preprocessed C++ files use the suffix ``.ii`'. GCC recognizes files with these names and compiles them as C++ programs even if you call the compiler the same way as for compiling C programs (usually with the name `gcc`).

However, the use of `gcc` does not add the C++ library. `g++` is a program that calls GCC and automatically specifies linking against the C++ library. It treats ``.c`', ``.h`' and ``.i`' files as C++ source files instead of C source files unless `-x` is used. This program is also useful when precompiling a C header file with a ``.h`' extension for use in C++ compilations. On many systems, `g++` is also installed with the name `c++`.

When you compile C++ programs, you may specify many of the same command-line options that you use for compiling programs in any language; or command-line options meaningful for C and related languages; or options that are meaningful only for C++ programs. See Options Controlling C Dialect, for explanations of options for languages related to C. See Options Controlling C++ Dialect, for explanations of options that are meaningful only for C++ programs.